/**
 * 
 */
package org.hilo.boot.core.code;

import java.util.List;
import java.util.Set;

/**
 * 
 * @author zollty
 * @since 2018年6月19日
 */
public class EntityInfo {
    
    private String packageName;
    
    private String className;
    
    private String comment;
    
    private String dtoPath;
    
    private String author;
    
    private String serialVersionUID;
    
    private List<FieldMeta> fields;
    
    private Set<String> importPackages;
    
    private boolean builderModel;
    
    private boolean constantColumn;
    
    public EntityInfo clone() {
        EntityInfo ret = new EntityInfo();
        ret.packageName = this.packageName;
        ret.className = this.className;
        ret.comment = this.comment;
        ret.author = this.author;
        ret.fields = this.fields;
        ret.importPackages = this.importPackages;
        ret.builderModel = this.builderModel;
        ret.constantColumn = this.constantColumn;
        ret.dtoPath = this.dtoPath;
        return ret;
    }

    /**
     * @return the packageName
     */
    public String getPackageName() {
        return packageName;
    }

    /**
     * @param packageName the packageName to set
     */
    public void setPackageName(String packageName) {
        this.packageName = packageName;
    }

    /**
     * @return the className
     */
    public String getClassName() {
        return className;
    }

    /**
     * @param className the className to set
     */
    public void setClassName(String className) {
        this.className = className;
    }

    /**
     * @return the comment
     */
    public String getComment() {
        return comment;
    }

    /**
     * @param comment the comment to set
     */
    public void setComment(String comment) {
        this.comment = comment;
    }

    /**
     * @return the author
     */
    public String getAuthor() {
        return author;
    }

    /**
     * @param author the author to set
     */
    public void setAuthor(String author) {
        this.author = author;
    }

    /**
     * @return the fields
     */
    public List<FieldMeta> getFields() {
        return fields;
    }

    /**
     * @param fields the fields to set
     */
    public void setFields(List<FieldMeta> fields) {
        this.fields = fields;
    }

    /**
     * @return the importPackages
     */
    public Set<String> getImportPackages() {
        return importPackages;
    }

    /**
     * @param importPackages the importPackages to set
     */
    public void setImportPackages(Set<String> importPackages) {
        this.importPackages = importPackages;
    }

    /**
     * @return the builderModel
     */
    public boolean isBuilderModel() {
        return builderModel;
    }

    /**
     * @param builderModel the builderModel to set
     */
    public void setBuilderModel(boolean builderModel) {
        this.builderModel = builderModel;
    }

    /**
     * @return the constantColumn
     */
    public boolean isConstantColumn() {
        return constantColumn;
    }

    /**
     * @param constantColumn the constantColumn to set
     */
    public void setConstantColumn(boolean constantColumn) {
        this.constantColumn = constantColumn;
    }

    /**
     * @return the serialVersionUID
     */
    public String getSerialVersionUID() {
        if (serialVersionUID == null) {
            serialVersionUID = String.valueOf(System.nanoTime()) + "L";
        }
        return serialVersionUID;
    }

    /**
     * @param serialVersionUID the serialVersionUID to set
     */
    public void setSerialVersionUID(Long serialVersionUID) {
        this.serialVersionUID = String.valueOf(serialVersionUID);
    }

    /**
     * @return the dtoPath
     */
    public String getDtoPath() {
        return dtoPath;
    }

    /**
     * @param dtoPath the dtoPath to set
     */
    public void setDtoPath(String dtoPath) {
        this.dtoPath = dtoPath;
    }


}
